import { getRequest, postRequest, putRequest, deleteRequest } from '/@/lib/axios';

/**
 * 工作流模型相关的 API 接口集合
 */
export const modelApi = {
  /**
   * 获取模型列表
   * @param {Object} params - 查询参数
   * @returns {Promise} 返回模型列表数据
   */
  listModel: (params) => getRequest('/workflow/model/list', params),

  /**
   * 获取模型历史版本列表
   * @param {Object} params - 查询参数
   * @returns {Promise} 返回模型历史版本数据
   */
  historyModel: (params) => getRequest('/workflow/model/historyList', params),

  /**
   * 获取指定模型的详细信息
   * @param {string|number} modelId - 模型ID
   * @returns {Promise} 返回模型详细信息
   */
  getModel: (modelId) => getRequest('/workflow/model/' + modelId),

  /**
   * 新增工作流模型
   * @param {Object} params - 模型参数
   * @returns {Promise} 返回创建结果
   */
  addModel: (params) => postRequest('/workflow/model', params),

  /**
   * 更新工作流模型
   * @param {Object} params - 更新的模型参数
   * @returns {Promise} 返回更新结果
   */
  updateModel: (params) => putRequest('/workflow/model', params),

  /**
   * 保存工作流模型
   * @param {Object} params - 保存的模型参数
   * @returns {Promise} 返回保存结果
   */
  saveModel: (params) => postRequest('workflow/model/save/', params),

  /**
   * 获取最新版本的模型
   * @param {Object} params - 查询参数
   * @returns {Promise} 返回最新版本的模型数据
   */
  latestModel: (params) => postRequest('/workflow/model/latest', params),

  /**
   * 删除工作流模型
   * @param {string|number} modelIds - 模型ID（支持单个或多个，多个时用逗号分隔）
   * @returns {Promise} 返回删除结果
   */
  delModel: (modelIds) => deleteRequest('/workflow/model/' + modelIds),

  /**
   * 部署工作流模型
   * @param {Object} params - 部署参数
   * @returns {Promise} 返回部署结果
   */
  deployModel: (modelId) => getRequest(`/workflow/model/deploy/${modelId}`),

  /**
   * 获取模型的 BPMN XML 数据
   * @param {string|number} modelId - 模型ID
   * @returns {Promise} 返回模型的 BPMN XML 数据
   */
  getBpmnXml: (modelId) => getRequest('/workflow/model/bpmnXml/' + modelId),
};
